package bo

import (
	"yxs-mall/common/models"
)

type ProductDocumentDetailBo struct {
	//_class string `json:"_Class,omitempty" gorm:"-"`
	// 商品id
	Id int64 `json:"id,omitempty"`
	// 用户id
	UserId models.LocalInt64 `json:"userId,omitempty"`
	// 标题
	Title string `json:"title,omitempty"`
	// 标签
	Tag string `json:"tag,omitempty"`
	// 封面
	Cover string `json:"cover,omitempty"`
	// 商品类型1文档，2实体
	Type int `json:"type,omitempty"`
	// 文件类型
	FileType int `json:"fileType,omitempty"`
	// 商品描述
	Description string `json:"description,omitempty"`
	// 热度
	Hot int `json:"hot,omitempty"`
	// 价格类型1:免费，2:收费，3:会员
	PriceType int `json:"priceType,omitempty"`
	// 价格
	Price float64 `json:"price,omitempty"`
	// 预览页数
	PreviewPage int `json:"previewPage,omitempty"`
	// 上架状态:1->未上架，2->上架，3->上架中
	PuplishState int `json:"puplishState,omitempty"`
	// 上架时间
	PuplishTime models.LocalTime `json:"puplishTime"`
	CreateTime  models.LocalTime `json:"createTime"`
	// 介绍图片
	Images []SpuImageBo `gorm:"foreignKey:ProductId;references:Id"`
	//// 文档详细内容，可以有多个
	Files   []MallFileBo          `gorm:"foreignKey:ProductId;references:Id"`
	Records []MallProductRecordBo `gorm:"foreignKey:Id;references:Id"`
	//// 属性集合
	//Attrs []query.Attr
	//// 文件大小
	//Size float64 `json:"size,omitempty"`
	//// 用户是否收藏该商品  收藏为true
	//IsCollect bool `json:"isCollect,omitempty"`
	//// 评论量等数据
	//Record int `json:"record,omitempty"`
	//// 用户是否购买该商品
	//IsPay bool `json:"isPay,omitempty"`
}

type SpuImageBo struct {
	Id int64 `json:"id,omitempty"`
	// 商品id
	ProductId int64 `json:"productId,omitempty"`
	// 图片名字
	ImgName string `json:"imgName,omitempty"`
	// 图片地址
	ImgUrl string `json:"imgUrl,omitempty"`
	// 顺序
	ImgSort int `json:"imgSort,omitempty"`
}

func (m *SpuImageBo) TableName() string {
	return "mall_spu_image"
}

type MallFileBo struct {
	Id        int64 `json:"id,omitempty"`
	ProductId int64 `json:"productId,omitempty"`
	// 文件md5值
	Md5 string `json:"md5,omitempty"`
	// 文件名
	Name string `json:"name,omitempty"`
	// 文件地址
	Url string `json:"url,omitempty"`
	// 文件大小
	Size float64 `json:"size,omitempty"`
	// 文件页数
	Page int `json:"page,omitempty"`
	// 文件类型
	FileType string `json:"fileType,omitempty"`
}

func (m *MallFileBo) TableName() string {
	return "mall_product_file"
}

type MallProductRecordBo struct {
	// 商品id
	Id int64 `json:"id,omitempty"`
	// 浏览量
	BrowseNum int `json:"browseNum,omitempty"`
	// 下载数
	DownloadNum int `json:"downloadNum,omitempty"`
	// 销量
	SalesNum int `json:"salesNum,omitempty"`
	// 评论数
	CommentNum int `json:"commentNum,omitempty"`
	// 好评数
	GoodCommentNum int `json:"goodCommentNum,omitempty"`
	// 差评数
	BadCommentNum int `json:"badCommentNum,omitempty"`
	// 收藏数
	CollectNum int `json:"collectNum,omitempty"`
	// 搜索量
	SearchNum int `json:"searchNum,omitempty"`
}

func (m *MallProductRecordBo) TableName() string {
	return "mall_product_record"
}
